home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / gui / gui4cli.lha / Gui4Cli / G4C / FSearch / FSearch.gc next >
Text File  |  1999-04-21  |  16KB  |  653 lines

  1. G4C
  2.  
  3. ; $VER: FSearch.gc 1.1 
  4. ; by D.Keletsekis 15/9/97
  5.  
  6. ; GUI for the FSearch command
  7.  
  8. ; You must have FSearch 1.1 in the guis:c/fsearch directory, or
  9. ; else change the paths given in the 2 Launch commands.
  10.  
  11. ; This gui can be called as :
  12. ; GUILOAD guis:g4c/fsearch.gc SearchPath TextToFind
  13.  
  14. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  15. ;
  16. ;                            Globals
  17. ;
  18. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  19.  
  20. WINBIG 103 22 409 159 'FSearch 1.1 by D.Keletsekis'
  21. WinType 11110001
  22. resinfo 8 660 270
  23.  
  24. varpath 'fsearch.ft'  ; /dir.gc'
  25. winout  "kcon:0/100/690/170/FSearch Output/auto/close/wait"
  26. BOX 2 13 406 128 OUT button
  27.  
  28.  
  29. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  30. ;
  31. ;                           System events
  32. ;
  33. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  34.  
  35. xOnLoad searchpath findtxt
  36.     setgad FSearch.gc 101  hide
  37.     setgad FSearch.gc 201/250 hide
  38.     setgad FSearch.gc 300/350 hide
  39.     setgad FSearch.gc 325/333 off   ; size
  40.     setgad FSearch.gc 305/306 off   ; date
  41.     GuiOpen FSearch.gc
  42.     ; the default values
  43.     if $$ARG.0 > ''
  44.        searchpath = $$ARG.0
  45.     else
  46.        searchpath = sys:
  47.     endif
  48.     file = '#?'
  49.     subdirs = ALL
  50.     findtxt = ''
  51.     case = ''
  52.     strsearch = On
  53.     output = gui
  54.     format = 'VERBOSE'
  55.     nobin = ''
  56.     nopath = ''
  57.     details = ''
  58.     highlight = HL
  59.     min_size = ''
  60.     max_size = ''
  61.     from = ''
  62.     to = ''
  63.     header = ''
  64.     update fsearch.gc 2 $searchpath
  65.     update fsearch.gc 7 $findtxt
  66.     setgad fsearch.gc 7 on
  67.     ; load the file types
  68.     lvuse fsearch.ft 1
  69.     lvchange :fsearch.types
  70.  
  71. xOnClose
  72.     GuiQuit FSearch.gc
  73.     GuiQuit fsearch.ft      ; filetypes gui
  74.     GuiQuit fsearch.rmb
  75.  
  76. xONRMB
  77.     if $guimode = RES
  78.        guiopen fsearch.rmb
  79.     endif
  80.  
  81.  
  82. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  83. ;
  84. ;                          Gui Mode cycler
  85. ;
  86. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  87.  
  88. ; ---- a cycler to change the gui to its various modes
  89.  
  90. XCYCLER 2 0 186 13 "" guimode
  91.     gadhelp 'Click to change the GUI mode - use "m" for shortcut'
  92.     gadid 500
  93.     gadkey m            ; use 'm' to cycle it
  94.     CStr "FSearch Parameters"  PAR
  95.     CStr "FSearch Settings" SET
  96.     cstr "Date, Size & Type"  DATE
  97.     cstr "FSearch Results" RES
  98.     gosub FSearch.gc guichange
  99.  
  100. xroutine guichange
  101.     docase $guimode
  102.       case = PAR
  103.            setgad FSearch.gc 1/13  show
  104.            setgad FSearch.gc 21/24 show
  105.            setgad FSearch.gc 101   hide
  106.            setgad FSearch.gc 300/350 hide
  107.            setgad FSearch.gc 201/250 hide
  108.            break
  109.       case = SET
  110.            setgad FSearch.gc 1/13  hide
  111.            setgad FSearch.gc 21/24 hide
  112.            setgad FSearch.gc 101   hide
  113.            setgad FSearch.gc 300/350 hide
  114.            setgad FSearch.gc 201/250 show
  115.            break
  116.       case = DATE
  117.            setgad FSearch.gc 1/13    hide
  118.            setgad FSearch.gc 21/24   hide
  119.            setgad FSearch.gc 101     hide
  120.            setgad FSearch.gc 201/250 hide
  121.            setgad FSearch.gc 300/350 show
  122.            break
  123.       case = RES
  124.            setgad FSearch.gc 1/13  hide
  125.            setgad FSearch.gc 21/24 hide
  126.            setgad FSearch.gc 101   show
  127.            setgad FSearch.gc 300/350 hide
  128.            setgad FSearch.gc 201/250 hide
  129.            break
  130.     endcase
  131.     ; redraw FSearch.gc
  132.     ; NEW - using PARTREDRAW - looks great eh?
  133.     partredraw FSearch.gc 4 15 402 124
  134.  
  135.     if $guimode != RES
  136.         SetWintitle FSearch.gc 'FSearch by D. Keletsekis'
  137.     endif
  138.  
  139.  
  140. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  141. ;
  142. ;                          Parameters
  143. ;
  144. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  145.  
  146. ; ------ choose searchpath(s)
  147.     
  148. BOX 10 20 388 64 in button
  149.     gadid 12
  150.  
  151. CTEXT 20 25 "Search in :" #screen 8 2 0 0001
  152.     gadid 1
  153.  
  154. XTEXTIN 18 37 350 13 "" searchpath sys: 100
  155.     gadhelp 'This is the path FSearch will start searching from'
  156.     gadid 2
  157.     setgad FSearch.gc 5 on         ; set cursor to next textin gad
  158.  
  159. XBUTTON 370 37 18 13 "<"      ; choose a searchpath
  160.     gadhelp 'Will pop-up a requester to let you choose a path'
  161.     gadid 3
  162.     ReqFile -1 -1 300 200 'Choose SearchPath:' DIR searchpath $searchpath
  163.     update FSearch.gc 2 $searchpath
  164.  
  165. ; ---- filename pattern
  166.  
  167. CTEXT 21 54 "File name pattern :" #screen 8 2 0 0001
  168.     gadid 4
  169.  
  170. XTEXTIN 17 65 350 13 "" file '#?' 100
  171.     gadhelp 'Enter the filepattern wanted - #? means all files'
  172.     gadid 5
  173.     setgad FSearch.gc 7 on         ; set cursor to next textin gad
  174.  
  175. XBUTTON 370 65 18 13 "<"
  176.     gadid 4
  177.     guiopen fsearch.ft :fsearch.pat 5
  178.  
  179. XCHECKBOX 364 24 25 9 "_Include sub-directories" subdirs ALL "" ON
  180.     gadhelp 'Check ON to make FSearch recurse through all subdirectories'
  181.     gadid 11
  182.  
  183. ; ---- text search
  184.  
  185. CTEXT 22 99 "Find text :" #screen 8 2 0 0001
  186.     gadid 6
  187.  
  188. XTEXTIN 17 111 371 13 "" findtxt '' 100
  189.     gadhelp 'Enter the text you want to find - or nothing for no text search.'
  190.     gadid 7
  191.  
  192. BOX 9 92 389 37 IN BUTTON
  193.     gadid 8
  194.     
  195. XCHECKBOX 360 97 25 9 "Case sensitive" case CS "" OFF
  196.     gadhelp 'Check ON to make the search Case Sensitive'
  197.     gadid 9
  198.     
  199.  
  200. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  201. ;
  202. ;                       Search results listview
  203. ;
  204. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  205.  
  206. XLISTVIEW 4 15 400 124 "" resfile "" 10 MULTI
  207. gadhelp "Display search results - Click RMB to save list contents"
  208. gadid 101
  209. gadfont #mono 8 001
  210.  
  211. ; deal with file - if running with dir.gc
  212. ifexists gui dir.gc
  213.    ; check the first characters
  214.  
  215.    ; use popup window to deal with choice, if it's a file
  216.  
  217.    if $resfile[0][4] = '›32m'
  218.        cutvar resfile[4] cut word  1 resfile
  219.        cutvar resfile cut char -4 temp   ; cut the csi
  220.        ifexists file $resfile
  221.            guiload guis:tools/rtn/FilePop \"$fsearch.gc/resfile\"
  222.        endif
  223.  
  224.    ; or it could be a file but with highlight off
  225.    
  226.    elseif $resfile[0][1] != ' '
  227.    and $resfile[0][1] != '›'
  228.        ifexists file $resfile
  229.            guiload guis:tools/rtn/FilePop \"$fsearch.gc/resfile\"
  230.        endif
  231.  
  232.    ; then it must be a line number.. I use CEd as an editor
  233.  
  234.    elseifexists port rexx_ced
  235.        cutvar resfile[4] cut word 1 resfile
  236.        sendrexx rexx_ced 'jump to line $resfile'
  237.    endif 
  238.  
  239. endif
  240.  
  241.  
  242.  
  243. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  244. ;
  245. ;                           FSearch settings
  246. ;
  247. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  248.  
  249. ; ------- output mode
  250.  
  251. BOX 23 28 175 71 in button
  252. gadid 201
  253.  
  254. XRADIO 156 38 18 9 output 2
  255. gadhelp 'Choose where you want the output from FSearch to go to'
  256. gadid 202
  257. rstr 'Output to Gui'   gui
  258. RStr 'Output to Shell' cli
  259.  
  260. ; ----------- Output format 
  261.  
  262. XRADIO 156 68 19 9 format 2
  263. gadhelp 'Says it all really..'
  264. gadid 203
  265. RStr  'Show text found' 'VERBOSE'
  266. RStr  'Filenames only'  ''
  267.  
  268. ; ------------ Settings - checkboxes
  269.  
  270. BOX 214 28 176 70 IN BUTTON
  271. gadid 208
  272.  
  273. XCHECKBOX 350 35 25 9 'Highlight results' highlight "HL" "" ON
  274. gadhelp 'Bask in the glory of colored ansi text - (OS V39)'
  275. gadid 205
  276.  
  277. XCHECKBOX 350 50 25 9 "Check binary files" nobin "" "NOBIN" ON
  278. gadhelp 'Check ON to make FSearch search binary files'
  279. gadid 211
  280.  
  281. XCHECKBOX 350 65 25 9 "Show File Path" nopath "" "NOPATH" ON
  282. gadhelp 'Will output filenames using their full path'
  283. gadid 212
  284.  
  285. XCHECKBOX 350 79 25 9 "Show File Details" details "INFO" "" OFF
  286. gadhelp 'Will also print out file size, date etc'
  287. gadid 213
  288.  
  289. ; ------- help & save settings
  290.  
  291. XBUTTON 299 119 91 13 "Help.."
  292. gadhelp 'Loads the FSearch.doc - the full Gui4Cli installation is needed'
  293. *FILENAME = '$$win.path\fsearch.readme'
  294. guiload guis:tools/read.gc
  295. guiopen read.gc
  296. gadid 220
  297.  
  298.  
  299.  
  300. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  301. ;
  302. ;                               DO IT!
  303. ;
  304. ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  305.  
  306. ; This is where the commandline is formed and launched. The name of
  307. ; the variable which holds it is 'options'
  308.  
  309.  
  310. XBUTTON 20 143 91 13 "_Search"
  311. gadhelp 'Start the search!'
  312. gadid 501
  313. if $searchpath < ' '
  314.    setwintitle FSearch.gc 'Wrong parameters!'
  315.    stop
  316. endif
  317. SetWintitle FSearch.gc Searching...
  318.  
  319. ; --- construct the command line
  320.  
  321. options = '$searchpath '
  322. if $file != '#?'
  323. and $file > ' '
  324.     appvar options 'PAT=$file '
  325. endif
  326. if $findtxt > ' '
  327.     appvar options 'TXT=\"$findtxt\" $case '
  328. endif
  329. if $size = SIZE
  330.    if $min_size  > ' '
  331.    and $min_size > 0